home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / CC_C / H001C.ZIP / DJGPP3.ZIP / EMU387 / E61.CC < prev    next >
C/C++ Source or Header  |  1991-04-26  |  436b  |  29 lines

  1. #include "emu.h"
  2. #include "rmov.h"
  3.  
  4. void emu_61()
  5. {
  6.   if (empty())
  7.     return;
  8.   if (modrm > 0277)
  9.   {
  10.     // fmulp st(i),st
  11.     int i = modrm & 7;
  12.     if (empty(i))
  13.       return;
  14.     reg t;
  15.     r_mul(st(i), st(), t);
  16.     r_mov(t, st(i));
  17.     st().tag = TW_E;
  18.     top++;
  19.   }
  20.   else
  21.   {
  22.     // fimul m16int
  23.     reg t, t2;
  24.     r_mov((short *)get_modrm(), t);
  25.     r_mul(st(), t, t2);
  26.     r_mov(t2, st());
  27.   }
  28. }
  29.